package Alibaba;

/**
 * @author zhangmin
 * @create 2022-01-30 11:55
 *
 * 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
 * 输入一个整数数组，实现一个函数来调整该数组中数字的顺序，使得所有奇数在数组的前半部分，所有偶数在数组的后半部分。
 * 双指针，前后遍历，左指针遇到偶数时和右指针交换，右指针遇到奇数时和左指针交换
 */
public class exchange_JZ21 {
    public int[] exchange(int[] nums) {
        int left=0,right=nums.length-1;
        while (left<right){
            while (left<right&&nums[left]%2==1){
             left++;
            }
            while (left<right&&nums[right]%2==0){
                right--;
            }
            if (left<right){
                int temp=nums[left];
                nums[left]=nums[right];
                nums[right]=temp;
            }
        }
        return nums;
    }
}
